package com.hengpeng.itfin.service;

import java.util.List;

import com.hengpeng.common.exception.ServiceResult;
import com.hengpeng.itfinbase.message.ResponseMessage;
import com.hengpeng.itfinbase.message.partner.CashRequestMsg;
import com.hengpeng.itfinbase.persist.Drawing;
import com.hengpeng.itfinbase.persist.Drawing.DrawingState;

public interface DrawingService
{
	/**
	 * <pre>
	 * 用户提现请求
	 * </pre>
	 * @param request
	 * @param isCheckPassword
	 * @return
	 */
	public ResponseMessage drawRequest(CashRequestMsg request);

	/**
	 * <pre>
	 * 处理提款结果
	 * </pre>
	 * @param providerId 支付提现商ID
	 * @param transNo 提款交易ID
	 * @param state 提款状态
	 * @param msg 状态信息
	 * @return
	 */
	public ServiceResult<Boolean> dealResult(String providerId, String transNo, DrawingState state, String msg);

	/**
	 * <pre>
	 * 根据处理状态获取有效提现列表
	 * </pre>
	 * @param state 提款处理状态(未处理,已受理,已提交银行,已转出,转出失败,等待退单,已退单)
	 * @param providerId　支付商ID
	 * @return
	 */
	public List<Drawing> getListByState(DrawingState state, String providerId);

	/**
	 * <pre>
	 * 批量更用户提款状态
	 * </pre>
	 * @param idList 提款ID列表
	 */
	public void updateState(List<Long> idList, DrawingState state);
}
